package com.base.controller;

import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.base.po.voip.Weeks;
import com.base.service.WeeksService;
import com.base.utils.Page;

/**
 * 签到信息查看服务端
 * 
 * @author f
 *
 */
@Controller
@RequestMapping("/admin")
public class index_Week {

	@Autowired
	private WeeksService weeksService; // 签到信息

	/**
	 * 签到信息首页
	 * 
	 * @param request       获取参数
	 * @param currentPageNo 当前页
	 * @param mobile        手机号码
	 * @param appname       应用名称
	 * @param username      代理商名称
	 * @param shopname      商家名称
	 * @param createtime    签到时间
	 * @param type    		查询类型
	 * @return ModelAndView
	 * @throws Exception
	 */
	@RequestMapping("/weekIndex")
	public ModelAndView weekIndex(HttpServletRequest request, Integer currentPageNo, String mobile, String appname,
			String username, String shopname, String createtime, Integer type) throws Exception {
		String userid = (String) request.getSession().getAttribute("adminUserId"); // 登录的用户ID
		if (userid == null) return new ModelAndView("jsp/loginCheck"); // 未登录
		Map<String, Object> map = new HashMap<>(); // 存储数据对象
		// 设置分页 获取内容
		Page page = new Page(); // 实例化分页
		if (currentPageNo != null) page.setCurrentPageNo(currentPageNo); // 设置当前页 主页不设置
		List<Weeks> wlist = null; // 签到内容集合
		Weeks weeks = null; // 签到对象集合
		// 判断登录权限
		switch ((int) request.getSession().getAttribute("adminUsergrade")) {
		case 0: // ADMIN用户显示 全部
			userid = null; // 把userid赋值为空 不进行break 之后进行查找商家下的所有内容 便是全部
		case 2: // 商家用户显示 商家下的用户
			weeks = weeksService.countByShopAll(userid, mobile, appname, username, shopname, createtime); // 赋值签到对象集合
			page.setRecordTotal(weeks.getCtweek()); // 设置总条数
			wlist = weeksService.selectByShopAll(page, userid, mobile, appname, username, shopname, createtime); // 赋值集合内容
			break;
		case 1: // 代理商用户显示 本代理商和本代理商下的代理商以及商家下的用户
			weeks = weeksService.countByParentAll(userid, mobile, appname, username, shopname, createtime); // 赋值签到对象集合
			page.setRecordTotal(weeks.getCtweek()); // 设置总条数
			wlist = weeksService.selectByParentAll(page, userid, mobile, appname, username, shopname, createtime); // 赋值集合内容
			break;
		}
		map.put("wlist", wlist); // 签到集合
		map.put("mobile", mobile); // 用户手机号
		map.put("appname", appname); // 应用名称
		map.put("username", username); // 代理商名称
		map.put("shopname", shopname); // 商家名称
		map.put("createtime", createtime); // 签到时间
		map.put("cba", weeks.getCallbalance()); // 通话金额
		map.put("sba", weeks.getShopbalance()); // 购物金额
		map.put("pages", page); // 分页
		map.put("day", new SimpleDateFormat("yyyy-MM-dd").format(Parameters.getNowDate())); // 今天的时间
		map.put("type", type); // 类型：今天 或者 全部
		return new ModelAndView("jsp/index_Week", map);
	}
}
